package com.bite.principal.config;

import com.bite.principal.model.Dog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
import org.springframework.web.context.annotation.ApplicationScope;
import org.springframework.web.context.annotation.RequestScope;
import org.springframework.web.context.annotation.SessionScope;

@Configuration
public class DogConfig {
    @Bean
    public Dog createDog() {
        return new Dog(1, "zhangsan");
    }

    @Bean
    public Dog singleDog() {
        return new Dog();
    }

    @Bean
    @Scope("prototype")
    public Dog prototypeDog() {
        return new Dog();
    }

    @Bean
    @RequestScope
    public Dog requestDog() {
        return new Dog();
    }

    @Bean
    @SessionScope
    public Dog sessionDog() {
        return new Dog();
    }

    @Bean
    @ApplicationScope
    public Dog applicationDog() {
        return new Dog();
    }
}
